import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:interview/config/app_config.dart';
import 'package:interview/controller/interview_controller.dart';
import 'package:interview/controller/interview_tabs_controller.dart';
import 'package:interview/controller/navigation_controller.dart';
import 'package:interview/controller/user_controller.dart';
import 'package:interview/theme/theme_shared_preference_heiper.dart';
import 'package:interview/utils/http.dart';

/// 应用初始化方法
Future<AppConfig> appInit() async {
  // 初始化主题存储
  await ThemeSharedPreferencesHelper.initializeTheme();
  
  // 初始化 getxStorage 仓库
  await GetStorage.init("user_box");
  await GetStorage.init("question_details_box");
  await GetStorage.init("search_history_box");
  await GetStorage.init("interview_tab_box");
  await GetStorage.init("interview_details_box");
  //  注册 UserController Get.lazyPut(() => UserController()); // 懒注册 只有find时 才能注册 但是使用有一些问题 统一进行注册
  Get.put(UserController());  // 确保 UserController 控制器
  Get.put(NavigationController()); // 注册登录鉴权控制器
  Get.put(InterviewTabsController()); //  面经tabbar控制器
  Get.put(InterviewController());
  // Get.put(AuthController()); // 注册登录鉴权控制器
  // 加载 AppConfig
  const appConfigRepository = AppConfigRepository();
  final appConfig = await appConfigRepository.load();
  // 初始化http
  Http.init();
  return appConfig;
}